//模块模式
//1.定义一个匿名函数
// let singleton = function(){
//     //2.定义私有变量和私有方法
//     let privateVariable = 10;
//     function privateFunction(){
//         return 'privateFunction'
//     }
//     //3.特权/共有方法和属性
//     return {
//         publicProperty:true,
//         publicMethod(){
//             privateVariable++;
//             return privateFunction();
//             }
//         }
// }

// class BaseComponent{}
// let application = function() {
//     // 私有变量和私有函数
//     let components = new Array();
//     // 初始化
//     components.push(new BaseComponent());
//     // 公共接口
//     return {
//         getComponentCount() {
//             return components.length;
//         },
//         registerComponent(component) {
//             if (typeof component == 'object') {
//                 components.push(component);
//             }
//         }
//     };
// }();